由於LINE PAY APIs官方範例程式裡出現了Lists.newArrayList()的方法~於是就有了這邊Guava的補充文!
程式碼:
圖片內的32、34行出現的Lists.newArrayList() 錯誤,而我們今天要說的就是Guava中對集合類型構造方法的封裝,拿Lists.newArrayList()舉例。
提醒:對於Java7以及之後的版本,本方法不必要且應被棄用,建議直接使用ArrayList的構造方法,可以利用新的「菱形語法」的優勢。
官方源碼:
菱形語法其實就是泛型中的<>!
Guava:
Guava是一個Goolge開源的Java通用library,包含多種被google的java專案廣泛使用的核心庫,例如:集合、快取 、字串處理、I/O、算術運算、反射、多執行序等工具。本文將介紹如何導入guava lib 及 guava collection的使用。
那要如何使用呢!
導入Library:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>28.1-jre</version>
<!-- or, for Android: -->
<version>28.1-android</version>
</dependency>
Pom檔引入完後建立一個測試用的 ListTest的class吧!
程式碼:
發現Lists.newArrayList() 跟 new ArrayList<>() 效果是一樣的。
那為了我們後續LINE PAY APIs的測試內容,就先把範例程式改成Arrays.asList()的寫法囉~:
剩下44行 toJson的錯誤就等到後面的內容再來修正。
到這邊LINE PAY APIs範例程式的java bean都建置也修正完畢了!
當然Guava工具類的內容不止Lists還有更多其他的功能:
不可變集合:ImmutableList
元素可重複的Set:Multiset
key與value可互為鍵值,但鍵與值不可重複:BiMap
擁有"row"和"column"兩個鍵值的Map:Table
但目前Guava工具類的功能在java8後都陸陸續續的有了~
所以到底用不用Guava的集合創建方法,還是看大家的個人喜好吧!
有興趣的話可以再多看看網路上的文章:
昕力資訊:https://www.tpisoftware.com/tpu/articleDetails/1713